home *** CD-ROM | disk | FTP | other *** search
- Path: news.lpr.carel.fi!usenet
- From: Ari Lukumies <aril@cmt.lpr.mail.carel.fi>
- Newsgroups: alt.computer.consultants,comp.edu,comp.lang.basic.misc,comp.lang.c++,comp.lang.misc,comp.lang.pascal.borland,comp.lang.pascal.delphi.misc,comp.misc,comp.os.msdos.programmer,comp.os.os2.programmer.misc,comp.programming
- Subject: Re: Can we do programming without seeing the end user?
- Date: Wed, 27 Mar 1996 13:46:46 +0200
- Organization: Carelcomp Products
- Message-ID: <31592AA6.7B1B@cmt.lpr.mail.carel.fi>
- References: <BYtKnOggyTxQ071yn@oslonett.no>
- NNTP-Posting-Host: renoir.cclahti.carel.fi
- Mime-Version: 1.0
- Content-Type: text/plain; charset=us-ascii
- Content-Transfer-Encoding: 7bit
- X-Mailer: Mozilla 2.0 (WinNT; I)
-
- Svein Olav Mytting wrote:
- >
- > I sort of believe that sales and programming should be strictly
- > separate tasks. While a salesman should see his customer in person,
- > a programmer shouldn't do that.
- >
- > My simple question is this: To which a degree can software development
- > be done using electronic communication as the only contact with the
- > sales people and/or end users?
- >
-
- Ok, here are a few things I've gathered during my nine years in
- programming/designing/analysing. But first I must add that what I will say have
- nothing to do with my current employer.
-
- First, the salesmen tend to be just salesmen - they'll sell anything if they'll
- make a buck. Unfortunately, many of them do not know if what they're selling can
- even be implemented using the platform (OS, languages, tools, hardware) the
- customer has. So, when preparing to sell something, it's a good idea to have a
- discussion between the salesman and someone who knows the platform (as a
- consultant). In addition, it's a good idea to have a consultant present in some
- (not all of them) of the meetings between the customer and the salesman, since
- the customer may come up with questions and suggestions the salesman is unable
- to answer. There should also be at least one person who knows the business area
- of the customer (or at least, the most important parts of it) to clarify the
- extent of the deal being prepared. After the deal has been signed, the salesman
- can move on to other deals, and the work of the analysts and designers begin.
-
- To design a user interface for a program is usually best done in co-operation
- with the end-user. For this purposes, a prototyping tool is ideal, especially if
- it allows fast restructuring and redesigning so the user can see/test the
- interface right away. What happens behind the user interface is the job of the
- analyst (someone who knows the business area) and the customer's representative
- to solve. Having that scetched out, the project leader can move on to break the
- required processes to be programmed by the project members (programmers).
- However, some parts of the system may not be fully scetched yet and may have to
- overgo several iterations. This is especially true for the databases used in
- large systems interacting with many different kinds of subsystems implemented
- successively (eg. logic connections, management systems, laboratory systems,
- orderbases etc). So, from time to time a revised version will tend to emerge. It
- would be a great job, if the system was designed to allow such iteration from
- the beginning, as to limit the amount of changes usually required in this kind
- of production.
-
- What's more difficult is to find limits of what should be done in the first
- place, and what are improvements or enhancements that could be added later. In
- one of the projects I've seen, a procedure was designed into a system, and
- implementing that took about 70% of the time planned for implementing the whole
- system. When the system was finished and after a year of running it, the
- customer had still not found use for the new procedure and had never used it. In
- addition, implementing this new procedure took so much time that some vital
- parts of the system were delayed beyond acceptable limit. The problem was that
- the people deciding about the importance and implementation order of the
- features did not know enough of the habbits and normal work-flow of the
- customer's end-users.
-
- I've seen too many cases where the project leader did not know a) the business
- area, and b) the platform and tools used either. This easily leads to a
- situation where the timetables won't hold and the job is done ineffieciently.
- The project leader(s) should always know their project members; what each of
- them is best at (or not good at), what are their specialities etc. so s/he can
- direct the different parts of the project to be done by the most suitable
- person. This is called resource maintainance. Also, the project leader should
- have at least some background on the platform and the business area, since it's
- usually s/he who should keep in connection with the customer.
-
- Normally, programmers would not have to deal with the customer, but in some
- cases it's unavoidable. For instance, if there's some particular problem that
- has to be solved and the only one specializing in that area is one of the
- programmers. This case does happen every now and then, especially when dealing
- with more complex systems (for example, transferring data from a previous system
- built by the customer's own staff to a new one). In this case, however, the
- programmer is usually considered to be a consultant or an analyst. I'd also like
- to add that if a programmer spent some time getting to know the customer's
- current way of doing things, he'd be better off to write the program, since he'd
- come to accustomed to the way the customer might do it easier. In many cases,
- it's more troublesome if the customer has to change their habbits than to extend
- them.
-
- The best organization (I've yet to see) would be one that contained three
- separate groups of people. One for the people that specialize in business areas
- but not much else. Another for people who specialize in platforms, hardware,
- tools etc. And one for those who cannot classify in the previous two - pure
- programmers (yes, there still are those). When putting up a team to produce a
- system for a customer, you would take enough people from the three cathegories
- and make them work together. The business-area people and the platform people
- would work as kind of consultants for the project group and, as such, could also
- participate in other projects same time, too, since they would not have to be
- involved with one particular project whole time.
-
- Later,
- AriL
- --
- All my opinions are mine and mine alone and do not necessarily reflect the
- opinions of my employer.
-